AT-NFC  2.1 (win)
AT-NFC kernel set
nfc_ep_data.h
Go to the documentation of this file.
1 #ifndef NFC_EP_DATA_H
2 #define NFC_EP_DATA_H
3 
4 /* *************************** NFC Entry Point data definitions **************************** */
8 /* ***************************************************************************************** */
9 
10 /* set struct alignment */
11 #include <emv_platform_set_align.h>
12 
13 /* ***************************************************************************************** */
18 /* ***************************************************************************************** */
19 
20 /* ************************************* Checksum Types ************************************ */
23 #define NFC_CHECKSUM_BINARY 0x00
24 #define NFC_CHECKSUM_CONFIG 0x01
25 #define NFC_CHECKSUM_FULL_CONFIG 0x02
29 /* ***************************************************************************************** */
34 #define NFC_EP_MASK_STATUS_CHECK 0x0001
35 #define NFC_EP_MASK_ZERO_AMOUNT 0x0002
36 #define NFC_EP_MASK_ZERO_AMOUNT_OFFLINE 0x0004
37 #define NFC_EP_MASK_RDR_CLESS_LIMIT 0x0008
38 #define NFC_EP_MASK_RDR_CLESS_FLOOR_LIMIT 0x0010
39 #define NFC_EP_MASK_RDR_CVM_REQ_LIMIT 0x0020
40 #define NFC_EP_MASK_TTQ 0x0040
41 #define NFC_EP_MASK_EXT_SEL_SUPPORT 0x0080
48 #define NFC_EP_PRE_STATUS_CHECK_REQUESTED 0x0001
49 #define NFC_EP_PRE_CLESS_APP_NOT_ALLOWED 0x0002
50 #define NFC_EP_PRE_ZERO_AMOUNT 0x0004
51 #define NFC_EP_PRE_RDR_CVM_REQ_LIMIT_EXCEEDED 0x0008
52 #define NFC_EP_PRE_RDR_CLESS_FLOOR_LIMIT_EXCEEDED 0x0010
57 /* ***************************************************************************************** */
58 /* EP preprocessing data struct version ID */
65 #define NFC_EP_PRE_VERSION 0x01
67 /* ***************************************************************************************** */
68 
69 /* ***************************************************************************************** */
70 /* reset EP preprocessing data macro */
75 #define NFC_EP_PRE_RESET(DATA, SIZE) \
76 do \
77 { \
78  KER_MEM_SET(DATA, SIZE, 0, SIZE); \
79  (DATA)->usSize = SIZE; \
80  (DATA)->btVersion = NFC_EP_PRE_VERSION; \
81  (DATA)->pConfigData = KER_NULL; \
82  (DATA)->pTranData = KER_NULL; \
83 } while (0)
84 
85 /* ********************* Entry Point preprocessing data definitions ************************ */
91 typedef struct tag_NFC_EP_PRE_DATA
92 {
119 /* ***************************************************************************************** */
120 /* EP Card PPSE data struct version ID */
127 #define NFC_EP_PPSE_VERSION 0x01
129 /* ***************************************************************************************** */
130 
131 /* ***************************************************************************************** */
132 /* reset PPSE data macro */
137 #define NFC_EP_PPSE_RESET(DATA, SIZE) \
138 do \
139 { \
140  KER_MEM_SET(DATA, SIZE, 0, SIZE); \
141  (DATA)->usSize = SIZE; \
142  (DATA)->btVersion = NFC_EP_PPSE_VERSION; \
143 } while (0)
144 
145 /* ***************************************************************************************** */
152 typedef struct tag_NFC_EP_PPSE_DATA
153 {
165 /* ***************************************************************************************** */
166 /* transaction EP indicators */
173 #define NFC_TRAN_EP_IND_EXT_SELECTION 0x0001
174 #define NFC_TRAN_EP_IND_EP_RESTART_FLAG 0x0002
175 #define NFC_TRAN_EP_IND_CD_CVM_RESTART 0x0004
177 /* ***************************************************************************************** */
178 
179 /* ***************************************************************************************** */
180 /* EP Tran data struct version ID */
187 #define NFC_EP_TRAN_DATA_VERSION 0x0001
189 /* ***************************************************************************************** */
190 
191 /* ***************************************************************************************** */
192 /* reset Tran data macro */
197 #define NFC_EP_TRAN_DATA_RESET(DATA, SIZE) \
198 do \
199 { \
200  KER_MEM_SET(DATA, SIZE, 0, SIZE); \
201  (DATA)->usSize = SIZE; \
202  (DATA)->btVersion = NFC_EP_TRAN_DATA_VERSION; \
203  (DATA)->pTermTranData = KER_NULL; \
204  (DATA)->pTermTranDataTLV = KER_NULL; \
205  (DATA)->pbt84 = KER_NULL; \
206  (DATA)->pbtCPLC = KER_NULL; \
207  (DATA)->btEpStart = NFC_OUTCOME_START_TYPE_NA; \
208 } while (0)
209 
210 /* external tran data struct, defined in nfc_ext_data.h */
212 
213 /* ***************************************************************************************** */
220 typedef struct tag_NFC_EP_TRAN_DATA
221 {
241  const KER_BYTE* pbt84;
244  const KER_BYTE* pbtCPLC;
252 /* ***************************************************************************************** */
253 /* EP Tran restart data struct version ID */
260 #define NFC_EP_RESTART_DATA_VERSION 0x0001
262  /* ***************************************************************************************** */
263 
264  /* ***************************************************************************************** */
265  /* reset Tran data macro */
270 #define NFC_EP_RESTART_DATA_RESET(DATA, SIZE) \
271 do \
272 { \
273  KER_MEM_SET(DATA, SIZE, 0, SIZE); \
274  (DATA)->usSize = SIZE; \
275  (DATA)->btVersion = NFC_EP_RESTART_DATA_VERSION; \
276  (DATA)->btEpStart = NFC_OUTCOME_START_TYPE_NA; \
277 } while (0)
278 
279 /* ***************************************************************************************** */
287 {
300 /* *************************************** nfcTran ***************************************** */
301 typedef struct tag_KER_TRAN KER_TRAN;
302 
303 /* restore struct alignment */
305 
306 #endif /* NFC_EP_DATA_H */
#define EMV_RESP_APDU_MAX_SIZE
Definition: emv_const.h:40
uint8_t KER_BYTE
Definition: emv_platform.h:70
unsigned short KER_INT16U
Definition: emv_platform.h:61
struct tag_KER_TRAN KER_TRAN
Kernel internal transaction data structure.
Definition: emv_data.h:251
struct tag_NFC_EP_PPSE_DATA NFC_EP_PPSE_DATA
EP PPSE Card data used for certain combination.
struct tag_NFC_EP_TRAN_DATA NFC_EP_TRAN_DATA
EP Transaction data.
struct tag_NFC_EP_PRE_DATA NFC_EP_PRE_DATA
EP preprocessing data version 1.
struct tag_NFC_EP_RESTART_DATA NFC_EP_RESTART_DATA
EP Transaction restart data.
TLV container structure.
Definition: emv_data.h:63
EP PPSE Card data used for certain combination.
Definition: nfc_ep_data.h:153
KER_INT16U usSize
Definition: nfc_ep_data.h:154
KER_BYTE btVersion
Definition: nfc_ep_data.h:155
KER_BYTE bt4FLen
Definition: nfc_ep_data.h:158
KER_BYTE bt87
Definition: nfc_ep_data.h:161
KER_BYTE bt9F29Len
Definition: nfc_ep_data.h:159
KER_BYTE ar_bt4F[16]
Definition: nfc_ep_data.h:157
EP preprocessing data version 1.
Definition: nfc_ep_data.h:92
KER_BYTE btKernelIDLen
Definition: nfc_ep_data.h:100
KER_BYTE ar_btLimitClessTran[4]
Definition: nfc_ep_data.h:110
KER_INT16U usSize
Definition: nfc_ep_data.h:93
KER_BYTE ar_btTTQ[4]
Definition: nfc_ep_data.h:108
KER_BYTE btVersion
Definition: nfc_ep_data.h:94
KER_INT16U usPreDataPresentMask
Definition: nfc_ep_data.h:105
KER_BYTE btAIDLen
Definition: nfc_ep_data.h:97
KER_TLV * pConfigData
Definition: nfc_ep_data.h:102
KER_BYTE ar_btKernelID[8]
Definition: nfc_ep_data.h:99
KER_INT16U usPreprocIndicators
Definition: nfc_ep_data.h:114
KER_BYTE ar_btLimitClessFloor[4]
Definition: nfc_ep_data.h:111
KER_INT16U usPreDataSetMask
Definition: nfc_ep_data.h:106
KER_TLV * pTranData
Definition: nfc_ep_data.h:103
KER_BYTE ar_btCopyTTQ[4]
Definition: nfc_ep_data.h:115
KER_BYTE ar_btAID[16]
Definition: nfc_ep_data.h:96
KER_BYTE ar_btLimitCVMRequired[4]
Definition: nfc_ep_data.h:112
EP Transaction restart data.
Definition: nfc_ep_data.h:287
KER_INT16U usSize
Definition: nfc_ep_data.h:288
KER_BYTE ar_btSelectResp[EMV_RESP_APDU_MAX_SIZE]
Definition: nfc_ep_data.h:293
KER_BYTE btEpStart
Definition: nfc_ep_data.h:296
KER_BYTE btVersion
Definition: nfc_ep_data.h:289
KER_INT16U usSelectRespLen
Definition: nfc_ep_data.h:294
KER_INT16U usSW1SW2
Definition: nfc_ep_data.h:291
EP Transaction data.
Definition: nfc_ep_data.h:221
KER_BYTE ar_bt96[8]
Definition: nfc_ep_data.h:231
KER_INT16U usSize
Definition: nfc_ep_data.h:222
KER_BYTE ar_btSelectResp[EMV_RESP_APDU_MAX_SIZE]
Definition: nfc_ep_data.h:238
const KER_BYTE * pbt84
Definition: nfc_ep_data.h:241
const KER_TLV * pTermTranDataTLV
Definition: nfc_ep_data.h:228
KER_INT16U usEpIndicators
Definition: nfc_ep_data.h:225
KER_BYTE btEpStart
Definition: nfc_ep_data.h:247
KER_BYTE btVersion
Definition: nfc_ep_data.h:223
KER_BYTE btLangPrefLen
Definition: nfc_ep_data.h:234
const NFC_EXT_TERM_TRAN_DATA * pTermTranData
Definition: nfc_ep_data.h:227
KER_INT16U usSelectRespLen
Definition: nfc_ep_data.h:239
KER_BYTE ar_btLangPref[8]
Definition: nfc_ep_data.h:233
KER_BYTE ar_btUN[4]
Definition: nfc_ep_data.h:230
KER_INT16U usCPLCLen
Definition: nfc_ep_data.h:245
const KER_BYTE * pbtCPLC
Definition: nfc_ep_data.h:244
KER_INT16U us84Len
Definition: nfc_ep_data.h:242
KER_INT16U usSW1SW2
Definition: nfc_ep_data.h:236
Terminal transaction data structure.
Definition: nfc_ext_data.h:83